﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Programacion3_TPFinal_LosBorbotones
{
    public partial class Sedes : Form
    {
        public Sedes()
        {
            InitializeComponent();
        }
        Datos obDatos2 = new Datos();
        string rutaBD = "Data Source=localhost;Initial Catalog=Yamabushi;Integrated Security=True";
        //DataSet dsYamabushi;
        DataSet dsYamabushi;    


        private void Sedes_Load(object sender, EventArgs e)
        {
            obDatos2.consultar("select * from Sedes", "Sedes");
            this.Grilla.DataSource = obDatos2.ds.Tables["Sedes"];
            this.Grilla.Refresh();
            Grilla_Cursos.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (obDatos2.eliminar("Sedes", "Cod_Sede=" + Grilla.CurrentRow.Cells[0].Value.ToString() + "")) { MessageBox.Show("Registro eliminado correctamente"); } else { MessageBox.Show("Error al eliminar el registro"); }
            this.Close();
        }

        private void Grilla_CellClick(object sender, DataGridViewCellEventArgs e)
        {

            button2.Enabled = true;
            button3.Enabled = true;
            groupBox3.Enabled = true;

            string  seleccionCiudad_Sede, seleccionDireccion_Sede, seleccionProvincia_Sede, seleccionNombre_Sede;
        
            seleccionCiudad_Sede=Grilla.CurrentRow.Cells[2].Value.ToString();
            seleccionDireccion_Sede = Grilla.CurrentRow.Cells[3].Value.ToString();
            seleccionProvincia_Sede = Grilla.CurrentRow.Cells[4].Value.ToString();
            seleccionNombre_Sede = Grilla.CurrentRow.Cells[1].Value.ToString();

            textBox7.Text = seleccionCiudad_Sede;
            textBox8.Text = seleccionDireccion_Sede;
            textBox9.Text = seleccionProvincia_Sede;
            textBox10.Text = seleccionNombre_Sede;

            //COMBO BOX CURSOS
            this.comboBox2.DataSource = obDatos2.consultar2("Cursos");
            this.comboBox2.DisplayMember = "Nombre_Curso";
            this.comboBox2.ValueMember = "Cod_Curso";
            this.comboBox2.Refresh();


            // Completar Grillas Cursos
            string ConsultaSQLCursos = "Select Cursos.Nombre_Curso,Cursos.Cod_Curso from Cursos inner join Cursos_X_Sedes on Cursos.Cod_Curso = Cursos_X_Sedes.Cod_Curso inner join Sedes on Sedes.Cod_Sede = Cursos_X_Sedes.Cod_Sede where Cursos_X_Sedes.Cod_Sede = " + Grilla.CurrentRow.Cells[0].Value.ToString();
            dsYamabushi = new DataSet();

            AgregarTablaDataSetSQLServer(rutaBD, ConsultaSQLCursos,
                                        "Cursos", ref dsYamabushi);
            Grilla_Cursos.DataSource = dsYamabushi.Tables[0];
          

        }
        private void AgregarTablaDataSetSQLServer(string conexionBD, string ConsultaSQL,
                              string NombreTabla, ref DataSet ds)
        {
            SqlConnection cn = new SqlConnection(conexionBD);
            SqlDataAdapter adaptador = new SqlDataAdapter(ConsultaSQL, cn);
            cn.Open();
            adaptador.Fill(ds, NombreTabla);
        }



        private void button1_Click(object sender, EventArgs e)
        {
            if (txtNombreSede.Text == "")
                txtNombreSede.BackColor = Color.Red;
            else
                txtNombreSede.BackColor = System.Drawing.SystemColors.Control;

            if (txtDireccion.Text == "")
                txtDireccion.BackColor = Color.Red;
            else
                txtDireccion.BackColor = System.Drawing.SystemColors.Control;

            if (txtCiudad.Text == "")
                txtCiudad.BackColor = Color.Red;
            else
                txtCiudad.BackColor = System.Drawing.SystemColors.Control;

            if (txtProvincia.Text == "")
                txtProvincia.BackColor = Color.Red;
            else
                txtProvincia.BackColor = System.Drawing.SystemColors.Control;

            //----------------------//

            if (txtNombreSede.BackColor != Color.Red && txtDireccion.BackColor != Color.Red && txtCiudad.BackColor != Color.Red && txtProvincia.BackColor != Color.Red)
            {
                string sql = "insert into Sedes (Nombre_Sede,Ciudad_Sede,Direccion_Sede,Provincia_Sede) values ('" + this.txtCiudad.Text + "','" + this.txtNombreSede.Text + "','" + this.txtDireccion.Text + "','" + this.txtProvincia.Text + "')";
                if (obDatos2.insertar(sql)) { MessageBox.Show("Registro Insertado"); } else { MessageBox.Show("Error al insertar"); }
                this.Close();
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            string campos = "Nombre_Sede='" +textBox10.Text  + "', Ciudad_Sede='" + textBox7.Text + "', Direccion_Sede='" + textBox8.Text + "', Provincia_Sede='" + textBox9.Text + "'";
            if (obDatos2.actualizar("Sedes", campos, "Cod_Sede=" + Grilla.CurrentRow.Cells[0].Value.ToString() + "")) { MessageBox.Show("Registro Actualizado"); } else { MessageBox.Show("Error al intentar Actualizar"); }
            this.Close();
        }

        private void textBox9_TextChanged(object sender, EventArgs e)
        {

        }

        private void label8_Click(object sender, EventArgs e)
        {

        }

        private void button4_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        public bool Ya_existe_Curso(string codCurso, string codSede)//Comprueva si ya existe la convinacin de CodCurso y Cod Sede
        {
            SqlConnection ConeccionCurso = new SqlConnection(rutaBD);

            SqlCommand comando = new SqlCommand("select Cod_Curso,Cod_Sede from Cursos_X_Sedes", ConeccionCurso);
            ConeccionCurso.Open();
            SqlDataReader dr = comando.ExecuteReader();

            while (dr.Read())
            {
                if (dr[0].ToString() == codCurso && dr[1].ToString() == codSede)
                {
                    return false;
                }
            }
            return true;
        }

        private void button8_Click(object sender, EventArgs e)
        {
            if (Ya_existe_Curso(this.comboBox2.SelectedValue.ToString(), Grilla.CurrentRow.Cells[0].Value.ToString()))
            {
                string sql = "insert into Cursos_X_Sedes (Cod_Curso,Cod_Sede) values(" + this.comboBox2.SelectedValue.ToString() + "," + Grilla.CurrentRow.Cells[0].Value.ToString() + ")" ;
                if (obDatos2.insertar(sql)) { MessageBox.Show("Registro Insertado"); } else { MessageBox.Show("Error al insertar"); }
                this.Close();
            }
            else
            {
                MessageBox.Show("El curso ya esta registrado en la Sede seleccionada");
            }
        }

        private void Grilla_Cursos_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            button6.Enabled = true;
        }

        private void button6_Click(object sender, EventArgs e)
        {
            if (obDatos2.eliminar("Cursos_X_Sedes", " Cod_Sede = " + Grilla.CurrentRow.Cells[0].Value.ToString() , " Cod_Curso = " + Grilla_Cursos.CurrentRow.Cells[1].Value.ToString())) { MessageBox.Show("Registro eliminado correctamente"); } else { MessageBox.Show("Error al eliminar el registro"); }
            this.Close();
        }
    }
}
